package com.ctshk.rpc.finance.service;


import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.rpc.finance.dto.paidin.*;
import com.ctshk.rpc.finance.req.paidin.*;

import java.util.List;

/**
 * <p>
 * 财务实付 服务类
 * </p>
 *
 * @author 叶冠峰
 * @since 2021-04-12
 */
public interface IFinancePaidInService {

    /**
     * 列表
     * @param req
     * @return
     */
    Result<PageResponse<PaidInListDTO>> list(PaidInListReq req);

    /**
     * 详情
     * @param req
     * @return
     */
    Result<PaidInDTO> detail(PaidInIdReq req);

    /**
     * 申请付款/编辑
     * @param req
     * @return
     */
    Result add(PaidInAddReq req);

    /**
     * 删除
     * @param req
     * @return
     */
    Result del(PaidInIdReq req);

    /**
     * 提交审批
     * @param req
     * @return
     */
    Result commit(PaidInIdReq req);

    /**
     * 审批
     * @param req
     * @return
     */
    Result approval(PaidInApprovalReq req);

    /**
     * 供应商往来预订单列表
     * @param req
     * @return
     */
    Result<PageResponse<PaidInsupplierOrderListDTO>> supplierOrderList(PaidInsupplierOrderListReq req);

    /**
     * 申请付款-付款预订单列表
     * @param req
     * @return
     */
    Result<PaidInPreOrderDTO> preOrderList(PaidInPreOrderListReq req);

    /**
     * 根据ID列表预订单付款详情列表
     * @param idList
     * @return
     */
    List<PaidInStaticsDTO> getStaticsByIds(List<Long> idList);

}
